package com.aipartner.dto;


import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;

/**
 * VIP Plan Response DTO
 * 
 * @author AI Partner Team
 * @since 2024-01-20
 */
@Data
@NoArgsConstructor
@ApiModel(description = "VIP Plan Response")
public class VipPlanResponse {
    
    @ApiModelProperty(value = "Plan ID", example = "1")
    private Long id;
    
    @ApiModelProperty(value = "Plan type", example = "monthly")
    private String type;
    
    @ApiModelProperty(value = "Plan name", example = "Monthly VIP")
    private String name;
    
    @ApiModelProperty(value = "Current price", example = "130.00")
    private BigDecimal price;
    
    @ApiModelProperty(value = "Original price", example = "198.00")
    private BigDecimal originalPrice;
    
    @ApiModelProperty(value = "Plan description", example = "30 days unlimited access to all features")
    private String description;
    
    @ApiModelProperty(value = "Unit description", example = "$4.33/day")
    private String unit;
    
    @ApiModelProperty(value = "Duration in days", example = "30")
    private Integer duration;
    
    @ApiModelProperty(value = "Is recommended", example = "true")
    private Boolean recommended;
    
    @ApiModelProperty(value = "Status", example = "1")
    private Integer status;
    
    @ApiModelProperty(value = "Discount info", example = "Limited time 7 days")
    private String discount;
    
    public VipPlanResponse(String type, String name, BigDecimal price, BigDecimal originalPrice, 
                          String description, String unit, Integer duration) {
        this.type = type;
        this.name = name;
        this.price = price;
        this.originalPrice = originalPrice;
        this.description = description;
        this.unit = unit;
        this.duration = duration;
        this.recommended = false;
    }
}